"use strict";
// let a: void
// a =   
// console.log(a);
// function logMessage(msg:string):undefined{
//     console.log(msg);
// }
// let result=logMessage('你好')
// if(result){
//     console.log('logMessage有返回值');
// }
// let a: object
// a = {}
// a = [1, 2, 3]
// a = { name: '张三' }
// a = function () { }
// a = new String('111')
// class Person {
// }
// a = new Person()
// console.log(a);
// let person1: {
//     name: string,
//     age?: number,
// }
// let person2: { name: string; age?: number }
// let person3: {
//     name: string,
//     age?: number,
//     [key:string]:any
// }
// person3={
//     name: '张三',
//     age: 18,
//     gender: '男',
// }
// console.log(person3);
// let count:(a:number,b:number)=>number
// count=function(x,y){
//     return x+y
// }
// console.log(count(1,2));
// let arr1:[string,number]
// arr1=['123',12]
// function walk(str: string) {
//     if (str === 'up') {
//         console.log('向上走');
//     } else if (str === 'down') {
//         console.log('向下走');
//     } else if (str === 'left') {
//         console.log('向左走');
//     } else if (str === 'right') {
//         console.log('向右走');
//     } else {
//         console.log('请输入正确的方向');
//     }
// }
// walk('up')
//  const enum Direction {
//     Up = 110,
//     Down,
//     Left,
//     Right
// }
// function walk2(n: Direction) {
//     if (n === Direction.Up) {
//         console.log('向上走');
//     } else if (n === Direction.Down) {
//         console.log('向下走');
//     } else if (n === Direction.Left) {
//         console.log('向左走');
//     } else if (n === Direction.Right) {
//         console.log('向右走');
//     } else {
//         console.log('请输入正确的方向');
//     }
// }
// walk2(Direction.Up)
// type num=number
// let n:num
// n=100
// console.log(n);
// type Status=number|string
// type Gender='男'|'女'
// function printStatus(status:Status, gender:Gender){
//     console.log(status,gender);
// }
// printStatus(18,'男')
// type Area={
//     width:number,
//     height:number
// }
// type Address={
//     num:number,
//     cell:number,
//     room:number
// }
// type House=Area&Address
// let house:House={
//     width:100,
//     height:200,
//     num:1,
//     cell:2,
//     room:3
// }
// console.log(house);
// type LogFunc = () => void
// const f1: LogFunc = function () {
//     return 100
// }
// class Person{
//     // 属性声明
//     name:string
//     age:number
//     // 构造器
//     constructor(name:string,age:number){
//         this.name=name
//         this.age=age
//     }
//     // 方法 
//     a(){
//         console.log('aaa');
//     }
// }
// let p1=new Person('1',1).a()
// 定义一个泛型类 SomeArray<T>,他可以满足任何元素的添加(类中需要有addContent原型方法并使用泛型)
class SomeArray {
    constructor() {
        this.arr = [];
    }
    addContent(content) {
        this.arr.push(content);
    }
}
let arr = new SomeArray();
arr.addContent(1);
arr.addContent(2);
arr.addContent(3);
console.log(arr);
